package com.idp.web.service;

import com.idp.common.base.BaseResult;
import com.idp.common.persistence.Page;
import com.idp.web.dto.PatientListDTO;
import com.idp.web.entity.Patient;
import com.idp.web.vo.PatientSearchVo;

import java.util.List;

/**
 * 患者service接口
 *
 * @author xubinren
 * @version 1.0
 * @date 2018/3/6
 */
public interface IPatientService {

    /**
     * 根据条件分页查询患者列表
     *
     * @param patientSearchVo 查询条件
     * @param page 分页信息
     * @return Page<PatientListDTO>
     */
    Page<PatientListDTO> findByPage(PatientSearchVo patientSearchVo, Page<PatientListDTO> page);

    /**
     * 查询
     *
     * @param patient
     * @return
     */
    List<Patient> findBySearch(Patient patient);

    /**
     * 通过ID查询
     *
     * @param id 患者id
     * @return Patient
     */
    Patient getById(String id);

    /**
     * 新建患者信息
     * @param patient 患者信息
     * @param userId 操作人id
     * @return BaseResult
     */
    BaseResult add(Patient patient, String userId);

    /**
     * 修改患者信息
     * @param patient 修改后的患者信息
     * @param userId 操作人id
     * @return BaseResult
     */
    BaseResult update(Patient patient, String userId);

    /**
     * 根据患者id删除对应的患者信息
     * @param id 患者id
     * @return boolean
     */
    boolean delete(String id);

    /**
     * 修改用户账户状态
     * @param id 用户id
     * @param userId 操作人id
     * @return BaseResult
     */
    BaseResult changeStatus(String id, String userId);
}
